//# include "SparseDiagMatrix.H"
# include "CompDIAmatrix.H"

using namespace std;
using namespace mg::numeric::algebra ;



int main() {

  DIAmatrix<int> dia1 = {{1,2,0,11,0},{0,3,4,0,0},{0,5,6,7},{0,0,0,8,0},{0,0,0,9,10}};
  cout << "-------------------------------------------------" << endl;
  dia1.print();
  cout << "-------------------------------------------------" << endl;
  DIAmatrix<int> dia2("input25.dat");
  cout << "-------------------------------------------------" << endl;
  dia2.print();
  cout << "-------------------------------------------------" << endl;
  
 DIAmatrix<double> dia3("mat004.mtx"); 
  cout << "-------------------------------------------------" << endl;
  cout << dia3;
  cout << "---------------------------------------------------------" << endl;
  
  DIAmatrix<int> dm = {{11,12,0,0,0,0,0,0} ,{0,22,0,0,0,0,0,0} ,{31,32,33,0,0,0,0,0},
                              {41,42,43,44,0,0,0,0}, {0,0,0,0,55,56,0,0},{0,0,0,0,0,66,67,0},{0,0,0,0,0,0,77,78},{0,0,0,0,0,0,87,88}};
  cout << "---------------------------------------------------------" << endl;
  cout << dm ;
  cout << "---------------------------------------------------------" << endl;
  
  DIAmatrix<int> dia4("input17.dat"); 
  cout << "----------------------------------------------------------" << endl;
  cout << dia4;

  std::vector<int> v1 = {3,4,0,1,6,8,1,19};
  
  
  vector<int> v2 = dia4 * v1 ; 
  
  for(auto& x : v2)
     cout << x << ' ' ;
  cout << endl;   

  return 0;
}





